from EventManagement import EventUser
from Tabs import notebook
from TackAppCoreEvents import BuildingWindowEvent
from TackGameEditorEvents import AddModules #@UnresolvedImport
import Tkinter

################################################################################
class TackGameEditor(EventUser):
    ############################################################################
    def __init__(self):
        self._oNotebook = None
        
        # Event Callbacks
        self.RegisterEvent(BuildingWindowEvent, self.BuildTackGame)
    ############################################################################
    
    ############################################################################
    # Callbacks
    ############################################################################
    ############################################################################
    def BuildTackGame(self, oEvent):
        if not self._oNotebook:
            self._oNotebook = notebook(oEvent.GetEventData('rWindow'), Tkinter.TOP)
            
            # Allow any Tack Game Editor modules to add themselves to the tab
            self.SendEvent(AddModules({ 'oEditor' : self }))
    ############################################################################
    
    ############################################################################
    # Public Methods
    ############################################################################
    ############################################################################
    def AddModule(self, sTitle, oFrame):
        self._oNotebook.add_screen(oFrame, sTitle)
    ############################################################################
    
    ############################################################################
    def GetMaster(self):
        return self._oNotebook()
    ############################################################################
################################################################################